<?php 
namespace Modules\ShopAdmin\Http\Controllers\v1;
use Illuminate\Http\Request;
use Modules\AuthAdmin\Http\Requests\CommonIdRequest;
use Modules\AuthAdmin\Http\Requests\CommonStatusRequest;
use Modules\AuthAdmin\Http\Requests\CommonSortRequest;
use Modules\ShopAdmin\Models\ShopProductType as ShopProductTypeModel;
use Modules\ShopAdmin\Models\ShopProductAttrbuteKey as ShopProductAttrbuteKeyModel;
use Modules\ShopAdmin\Models\ShopProduct as ShopProductModel;
use Modules\ShopAdmin\Models\ShopOrderEvaluate as ShopOrderEvaluateModel;
class ProductController extends CommonController
{
	/**
	 * @name  商品分类
	 * @method  GET	
	 * @return  JSON
	 */ 
    public function product_type_list(Request $request)
    {
		return (new ShopProductTypeModel())->product_type_list();
    }
	/**
	 * @name  获取属性
	 * @method  GET	
	 * @param  product_type_id int 商品分类id
	 * @return  JSON
	 */ 
    public function product_attrbute_key_list(Request $request)
    {
		return (new ShopProductAttrbuteKeyModel())->product_attrbute_key_list($request->get('product_type_id'));
    }
	/**
	 * @name  商品列表
	 * @method  GET	
	 * @param  page int 页码
	 * @param  pagesize int 每页条数
	 * @param  name string 属性名称		
	 * @param  product_type_id int 商品分类id		
	 * @param  recommend_status int 是否精品推荐:0=否,1=是	
	 * @param  best_status int 是否热卖单品:0=否,1=是	
	 * @param  status int 状态:0=隐藏,1=显示	
	 * @param  created_at string 创建时间	
	 * @param  updated_at string 更新时间
	 * @return  JSON
	 */ 
    public function index(Request $request)
    {
		return (new ShopProductModel())->product_data($request->all());
    }
	/**
	 * @name  添加
	 * @method  POST	
	 * @param  bazaar_money float 产品市场价	
	 * @param  content string 商品详情	
	 * @param  name string 商品名称	
	 * @param  describe string 商品描述	
	 * @param  image_id int 图片id	
	 * @param  images string 轮播图：多个用|隔开	
	 * @param  money float 产品售价（是规格表中的第一个价格）
	 * @param  postage float 邮费（是规格表中的第一个价格）
	 * @param  product_spec array 商品规格数据
	 * @param  product_spec.bazaar_money float 产品市场价
	 * @param  product_spec.cost_money float 产品成本价
	 * @param  product_spec.money float 产品售价
	 * @param  product_spec.postage float 邮费
	 * @param  product_spec.sales int 销量
	 * @param  product_spec.stock int 库存
	 * @param  product_spec.sku array 单条sku_id组合
	 * @param  product_spec.specs array 单条sku的json数据
	 * @param  product_spec.specs.id int 属性值id
	 * @param  product_spec.specs.name string 属性值
	 * @param  product_type_id int 商品分类id
	 * @param  sales int 销量（是规格表中的总和）
	 * @param  attrbute_list array 前端展示多条sku的json数据
	 * @param  attrbute_list.id int 属性id
	 * @param  attrbute_list.name string 属性名称
	 * @param  attrbute_list.sub.id int 属性值id
	 * @param  attrbute_list.sub.name string 属性值名称
	 * @param  sort int 排序
	 * @param  specs_status int 是否有规格:0=否,1=是
	 * @return  JSON
	 */
    public function store(Request $request)
    {
		$data = $request->all();
		return (new ShopProductModel())->product_create($data);
    }
	/**
	 * @name  编辑页面
	 * @method  GET	
	 * @param  id int 商品id	
	 * @return  JSON
	 */
    public function edit(CommonIdRequest $request)
    {	
		return (new ShopProductModel())->get_edit($request->get('id'));
		
    }
	/**
	 * @name  编辑
	 * @method  PUT	
	 * @param  id int 商品id
	 * @param  bazaar_money float 产品市场价	
	 * @param  content string 商品详情	
	 * @param  name string 商品名称	
	 * @param  describe string 商品描述	
	 * @param  image_id int 图片id	
	 * @param  images string 轮播图：多个用|隔开	
	 * @param  money float 产品售价（是规格表中的第一个价格）
	 * @param  postage float 邮费（是规格表中的第一个价格）
	 * @param  product_spec array 商品规格数据
	 * @param  product_spec.bazaar_money float 产品市场价
	 * @param  product_spec.cost_money float 产品成本价
	 * @param  product_spec.money float 产品售价
	 * @param  product_spec.postage float 邮费
	 * @param  product_spec.sales int 销量
	 * @param  product_spec.stock int 库存
	 * @param  product_spec.sku array 单条sku_id组合
	 * @param  product_spec.specs array 单条sku的json数据
	 * @param  product_spec.specs.id int 属性值id
	 * @param  product_spec.specs.name int 属性值
	 * @param  product_type_id int 商品分类id
	 * @param  sort int 排序
	 * @param  specs_status int 是否有规格:0=否,1=是
	 * @return  JSON
	 */
    public function update(Request $request)
    {
		return (new ShopProductModel())->product_update($request->all()); 
    }
	/**
	 * @name  状态
	 * @method  PUT	
	 * @param  id int 商品id
	 * @param  status int 状态（0或1）
	 * @return  JSON
	 */ 
    public function status(CommonStatusRequest $request)
    {
		$data = $request->all();
		return (new ShopProductModel())->common_status_update($data['id'],['status'=>$data['status']]); 
    }
	/**
	 * @name  是否精品推荐
	 * @method  PUT	
	 * @param  id int 商品id
	 * @param  recommend_status int 是否精品推荐（0或1）
	 * @return  JSON
	 */ 
    public function recommend_status(Request $request)
    {
		$data = $request->all();
		return (new ShopProductModel())->common_status_update($data['id'],['recommend_status'=>$data['recommend_status']]); 
    }
	/**
	 * @name  是否热卖单品
	 * @method  PUT	
	 * @param  id int 商品id
	 * @param  best_status int 是否热卖单品（0或1）
	 * @return  JSON
	 */ 
    public function best_status(Request $request)
    {
		$data = $request->all();
		return (new ShopProductModel())->common_status_update($data['id'],['best_status'=>$data['best_status']]); 
    }
	/**
	 * @name  排序
	 * @method  PUT	
	 * @param  id int 商品id
	 * @param  sort int 排序
	 * @return  JSON
	 */ 
    public function sorts(CommonSortRequest $request)
    {
		$data = $request->all();
		return (new ShopProductModel())->common_sort_update($data['id'],['sort'=>$data['sort']]); 
    }
	/**
	 * @name  删除
	 * @method  DELETE	
	 * @param  id int 商品id
	 * @return  JSON
	 */ 
    public function destroy(CommonIdRequest $request)
    {
		return (new ShopProductModel())->common_is_delete($request->get('id')); 
    }
	/**
	 * @name  评论列表
	 * @method  GET	
	 * @param  id int 商品id
	 * @param  page int 页码
	 * @param  pagesize int 每页条数			
	 * @param  nick_name string 用户昵称
	 * @param  status int 是否显示:0=否,1=是	
	 * @param  level int 星级：1=非常差，2=差，3=一般，4=好，5=非常好
	 * @param  created_at string 评论时间	
	 * @return  JSON
	 */
    public function evaluate_list(Request $request)
    {
		return (new ShopOrderEvaluateModel())->evaluate_list($request->all());
    }
	/**
	 * @name  评论状态
	 * @method  PUT	
	 * @param  id int 评论id
	 * @param  status int 状态（0或1）
	 * @return  JSON
	 */ 
    public function evaluate_status(CommonStatusRequest $request)
    {
		$data = $request->all();
		return (new ShopOrderEvaluateModel())->common_status_update($data['id'],['status'=>$data['status']]); 
    }
}
